package com.sise.parkinglot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sise.parkinglot.bean.CodeMsg;
import com.sise.parkinglot.entity.User;

import java.util.List;
import java.util.Map;

/**
 * @author ZJ
 */
public interface IUserService extends IService<User> {

    /**
     * @return 根据条件获取用户列表
     */
    CodeMsg<List<User>> queryUserList(Map<String, Object> map);

    /**
     * @param user 用户
     * @return 添加用户
     */
    CodeMsg<String> addUser(User user);

    /**
     * @param carIds 车卡号
     * @return 冻结用户
     */
    CodeMsg<String> frozenUser(int[] carIds);

    /**
     * @param carIds 车卡号
     * @return 删除用户
     */
    CodeMsg<String> removeUser(int[] carIds);

    /**
     * @param carIds 车卡号
     * @return 解冻用户
     */
    CodeMsg<String> thawUser(int[] carIds);

    /**
     * @param user 用户数据
     * @return 更新用户
     */
    CodeMsg<String> updateUser(User user);

    /**
     * @param map 用户数据
     * @return 登陆信息
     */
    CodeMsg<String> upUser(Map<String, Object> map);

    /**
     * @param map 用户数据
     * @return 更新用户数据
     */
    CodeMsg<String> updateUserByToken(Map<String, String> map);

    /**
     * @param map code
     * @return token
     */
    CodeMsg<String> getToken(Map<String, Object> map);

    /**
     * @param map 用户数据
     * @return 操作结果
     */
    CodeMsg<String> addWalletUser(Map<String, String> map);

    /**
     * @param map token
     * @return 用户金额
     */
    CodeMsg<String> getOverage(Map<String, String> map);

    /**
     * @param map 充值金额
     * @return 提示
     */
    CodeMsg<String> addOverage(Map<String, String> map);

    /**
     * @param map token
     * @return token
     */
    CodeMsg<String> updateToken(Map<String, String> map);

    /**
     * @param map token
     * @return 用户数据
     */
    CodeMsg<User> getUserInfoByToken(Map<String, String> map);

    /**
     * @param map token
     * @return 支付
     */
    CodeMsg<String> pay(Map<String, String> map);

    /**
     * @param map token,password
     * @return 修改密码
     */
    CodeMsg<String> updatePassword(Map<String, String> map);
}
